// Mouse Event 用
import flash.events.*;

// ログ表示用
import mx.formatters.*;

private var FlashStageX:int;
private var FlashStageY:int;
private var FlashAreaX:int;
private var FlashAreaY:int;

public var FlashMaxX:int = 800;
public var FlashMaxY:int = 800;
public var FlashMinX:int = 300;
public var FlashMinY:int = 400;
public var img:String; //= "img/drag.png";

// *********************************************************
// 初期設定
// *********************************************************
public function initData():void {
	// Image の座標を変更する
//	FlashArea.x = stage.stageWidth - FlashArea.contentWidth ;
//	FlashArea.y = stage.stageHeight - FlashArea.contentHeight;
	FlashArea.source = img;


}

// *********************************************************
// ログ表示
// *********************************************************
public function log(data:Object):void {

	// 日付編集用
	var fmt:DateFormatter = new DateFormatter();

	fmt.formatString = "YYYY/MM/DD HH:NN:SS";
	var logdt:String = fmt.format( new Date );

	// JavaScript の呼び出し
	ExternalInterface.call(
		"console.log", logdt,
		" "+data
	);

}


// *********************************************************
// マウスダウンイベント
// *********************************************************
private function mouse_down(event:MouseEvent):void {

	// *********************************************************
	// クリック時の情報を保存
	// *********************************************************

	// クリックされた座標
	FlashStageX = event.stageX;
	FlashStageY = event.stageY;

	// クリックされた時のFlash領域の大きさ
	FlashAreaX = stage.stageWidth;
	FlashAreaY = stage.stageHeight;

}

// *********************************************************
// マウスの移動イベント
// *********************************************************
private function mouse_move(event:MouseEvent):void {
	log("stageX:" + stage.stageWidth + "+" + event.stageX + "-" + FlashStageX);
	log("stageY:" + stage.stageHeight + "+" + event.stageY + "-" + FlashStageY);




	// マウスが押されている
	if(event.buttonDown){
		StageChange(event.stageX, event.stageY);

/*
		var SizeX:int;
		var SizeY:int;
		
		// 横幅が設定された最小サイズより小さくならないようにする
		if(FlashAreaX + (event.stageX - FlashStageX) > FlashMinX){
			SizeX = FlashAreaX + (event.stageX - FlashStageX);

			// 横幅が設定された最大サイズより大きくならないようにする
			if(SizeX > FlashMaxX){
				SizeX = FlashMaxX;
			}
		} else {
			SizeX = FlashMinX;
		}


	
		// 縦幅を決定する
		if(FlashAreaY + (event.stageY - FlashStageY) > FlashMinY){
			SizeY = FlashAreaY + (event.stageY - FlashStageY);

			// 縦幅が設定された最大サイズより大きくならないようにする
			if(SizeY > FlashMaxY){
				SizeY = FlashMaxY;
			}
		} else {
			SizeY = FlashMinY;
		}


		// JavaScript を呼び出し Flash 領域を変更する
		ExternalInterface.call(
			"ChangeFlashArea",
			"flash_area",
//			event.currentTarget.id,
//			FlashAreaX + (event.stageX - FlashStageX),
//			FlashAreaY + (event.stageY - FlashStageY)
			SizeX,
			SizeY
		);

//		log(event.currentTarget.id);
//		log( "id : " + event.currentTarget.id );


		log("FlashArea.x:" + FlashArea.x);
		log("FlashArea.y:" + FlashArea.y);

//		log("size:" + SizeX + "gocha:" + (event.stageX - FlashStageX + FlashAreaX));
		log("stageX:" + stage.stageWidth);

		// Image の座標を変更する
//		FlashArea.x = event.stageX - FlashStageX + FlashAreaX - FlashArea.contentWidth ;
//		FlashArea.y = event.stageY - FlashStageY + FlashAreaY - FlashArea.contentHeight;
//		FlashArea.x = SizeX - FlashArea.contentWidth ;
//		FlashArea.y = SizeY - FlashArea.contentHeight;
		FlashArea.x = stage.stageWidth - FlashArea.contentWidth;
		FlashArea.y = stage.stageHeight - FlashArea.contentHeight;
*/
	}
}

private function StageChange(stageX:int, stageY:int):void{

	var SizeX:int;
	var SizeY:int;
	
	// 横幅が設定された最小サイズより小さくならないようにする
	if(FlashAreaX + (stageX - FlashStageX) > FlashMinX){
		SizeX = FlashAreaX + (stageX - FlashStageX);

		// 横幅が設定された最大サイズより大きくならないようにする
		if(SizeX > FlashMaxX){
			SizeX = FlashMaxX;
		}
	} else {
		SizeX = FlashMinX;
	}



	// 縦幅を決定する
	if(FlashAreaY + (stageY - FlashStageY) > FlashMinY){
		SizeY = FlashAreaY + (stageY - FlashStageY);

		// 縦幅が設定された最大サイズより大きくならないようにする
		if(SizeY > FlashMaxY){
			SizeY = FlashMaxY;
		}
	} else {
		SizeY = FlashMinY;
	}


	// JavaScript を呼び出し Flash 領域を変更する
	ExternalInterface.call(
		"ChangeFlashArea",
		"flash_area",
		SizeX,
		SizeY
	);

//	log(event.currentTarget.id);
//	log( "id : " + event.currentTarget.id );


//	log("FlashArea.x:" + FlashArea.x);
//	log("FlashArea.y:" + FlashArea.y);

	// Image の座標を変更する
	FlashArea.x = stage.stageWidth - FlashArea.contentWidth;
	FlashArea.y = stage.stageHeight - FlashArea.contentHeight;

/*
			// JavaScript を呼び出し Flash 領域を変更する
			ExternalInterface.call(
				"ChangeFlashArea",
				"flash_area",
//				stage.stageWidth + (event.stageX - FlashStageX),
//				stage.stageHeight + (event.stageY - FlashStageY)
//				event.stageX - FlashStageX,
//				event.stageY - FlashStageY
				FlashAreaX + (stageX - FlashStageX),
				FlashAreaY + (stageY - FlashStageY)
			);

			log("FlashArea.x:" + FlashArea.x);
			log("FlashArea.y:" + FlashArea.y);

			// Image の座標を変更する
			FlashArea.x = stageX - FlashStageX + FlashAreaX - FlashArea.contentWidth ;
			FlashArea.y = stageY - FlashStageY + FlashAreaY - FlashArea.contentHeight;
*/
}


/*
import mx.formatters.*;

public function changeFlashArea(script_name:String, obj:Object):void{
	ExternalInterface.call(
		script_name, obj
	);
}
*/